#include "adalog/LogEvent.h"

namespace adalog 
{
    LogEvent::LogEvent(const std::string& payload, 
                       const std::string& logger_name, 
                       LogLevel::Value log_level, 
                       std::chrono::system_clock::time_point log_time,
                       const std::string& file_name,
                       size_t line,
                       std::thread::id thread_id)
        : payload_(payload)
        , logger_name_(logger_name)
        , log_level_(log_level)
        , log_time_(log_time)
        , file_name_(file_name)
        , line_(line)
        , thread_id_(thread_id)
    {
    }

    std::string LogEvent::GetPayload() const
    {
        return payload_;
    }

    std::string LogEvent::GetLoggerName() const
    {
        return logger_name_;
    }

    LogLevel::Value LogEvent::GetLogLevel() const
    {
        return log_level_;
    }

    LogEvent::TimePoint LogEvent::GetLogTime() const
    {
        return log_time_;
    }

    std::string LogEvent::GetFileName() const
    {
        return file_name_;
    }

    size_t LogEvent::GetLine() const
    {
        return line_;
    }

    std::thread::id LogEvent::GetThreadId() const
    {
        return thread_id_;
    }


} // namespace adalog
